package com.briup.jd2511.jd2511bookstore.response;

/**
 * 统一响应格式
 */
public enum ResultCode {
	/* 成功状态码 */
	SUCCESS(200, "success"),

	/* 参数错误：10001-19999 */
	PARAM_IS_INVALID(10001, "参数无效"),
	PARAM_IS_BLANK(10002, "参数为空"),
	PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"),
	PARAM_NOT_COMPLETE(10004, "参数缺失"),

	/* 用户错误：20001-29999*/
	USER_NOT_LOGIN(20001, "用户未登录"),
	USER_LOGIN_ERROR(20002, "账号不存在或密码错误"),
	USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"),
	USER_NOT_EXIST(20004, "用户不存在"),
	USER_HAS_EXISTED(20005, "用户已存在"),

	/* 系统错误：40001-49999 */
	SYSTEM_INNER_ERROR(40001, "系统内部错误，请稍后重试"),

	/* 数据错误：50001-599999 */
	DATA_NONE(50001, "数据未找到"),
	DATA_WRONG(50002, "数据错误"),
	DATA_EXISTED(50003, "数据已存在"),


	/* 接口错误：60001-69999 */
	INTERFACE_INNER_INVOKE_ERROR(60001, "内部系统接口调用异常"),
	INTERFACE_OUTER_INVOKE_ERROR(60002, "外部系统接口调用异常"),
	INTERFACE_FORBID_VISIT(60003, "该接口禁止访问"),
	INTERFACE_ADDRESS_INVALID(60004, "接口地址无效"),
	INTERFACE_REQUEST_TIMEOUT(60005, "接口请求超时"),

	/* 权限错误：70001-79999 */
	PERMISSION_NO_ACCESS(70001, "无访问权限"),

	/*登录相关问题:*/
//	TOKEN_MISSION(80001, "当前未登录，请进行登录"),
//	TOKEN_INVALID(80002, "token不合法"),
//	TOKEN_CHECK_INFO_FAILED(80003, "token校验信息失败"),

	/* JWT相关枚举元素 */
	TOKEN_MISSION(20006, "token不存在，请进行登录"),
	TOKEN_TIMEOUT(20007, "token令牌已过期"),
	TOKEN_IS_INVALID(20008, "token令牌无效");


	private final Integer code;
	private final String msg;

	ResultCode(Integer code, String msg) {
		this.code = code;
		this.msg = msg;
	}

	public Integer code() {
		return this.code;
	}


	public String msg() {
		return this.msg;
	}

}
